package com.intelligent.system.auth.entity;

import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;

import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.List;

/**
 * 组织机构实体
 */
@Data
@TableName("sys_organization")
public class Organization {
    /**
     * 组织机构ID
     */
    @TableId(type = IdType.AUTO)
    private Long orgId;

    /**
     * 组织机构名称
     */
    private String orgName;

    /**
     * 组织机构简称
     */
    private String orgShortName;

    /**
     * 组织机构全称
     */
    private String orgFullName;

    /**
     * 组织机构地址
     */
    private String address;

    /**
     * 组织机构类型
     */
    private String orgType;

    /**
     * 组织机构编码
     */
    private String orgCode;

    /**
     * 愉快政机构编码
     */
    private String ykzOrgCode;

    /**
     * osm机构编码
     */
    private String osmOrgCode;


    /**
     * 父级组织机构编码
     */
    private String parentOrgCode;

    /**
     * 排序号
     */
    private Integer orderNum;

    /**
     * 组织机构特性
     */
    private String orgFeature;

    /**
     * 组织机构人数
     */
    private Integer personCount;

    /**
     * 组织机构存数
     */
    private String storageCount;

    /**
     * 组织机构传值
     */
    private String transferValue;

    /**
     * 组织机构舰艇
     */
    private String orgShip;

    /**
     * 组织机构舰艇数
     */
    private Integer orgShipCount;

    /**
     * 组织机构尺寸
     */
    private String orgSize;

    /**
     * 组织机构邮箱
     */
    private String orgEmail;

    /**
     * 经度
     */
    private Double longitude;

    /**
     * 纬度
     */
    private Double latitude;

    /**
     * 成立日期
     */
    private LocalDate establishDate;

    /**
     * 是否执勤
     */
    private Boolean onDuty;

    /**
     * 管理机构
     */
    private String manageOrg;

    /**
     * 所属辖区
     */
    private String jurisdiction;

    /**
     * 单位电话
     */
    private String orgPhone;

    /**
     * 值班固话
     */
    private String dutyFixedPhone;

    /**
     * 值班手机
     */
    private String dutyMobile;

    /**
     * 创建时间
     */
    @TableField(fill = FieldFill.INSERT)
    private LocalDateTime createTime;

    /**
     * 更新时间
     */
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private LocalDateTime updateTime;

    /**
     * 是否删除（0：未删除，1：已删除）
     */
    @TableLogic
    private Integer isDelete;

    /**
     * 联系人列表（一对多关系）
     */
    @TableField(exist = false)
    private List<Contact> contacts;
} 